package day13.thread02;

/**
 * @author Xiao
 * @date 2021/8/5
 */
public class ThreadDemo05 {
    /**
     * 	什么是死锁？
     *      线程死锁是指由于两个或者多个线程互相持有对方所需要的资源，导致这些线程处于等待状态，无法前往执行。
     * 	什么情况下会出现死锁？
     *      资源有限；
     *      同步嵌套。
     */
    public static void main(String[] args) {
        Object oA = new Object();
        Object oB = new Object();
        new Thread(() -> {
            while (true) {
                synchronized (oA) {
                    synchronized (oB) {
                        System.out.println("小康在走路");
                    }
                }
            }
        }).start();
        new Thread(() -> {
            while (true) {
                synchronized (oB) {
                    synchronized (oA) {
                        System.out.println("小薇在走路");
                    }
                }
            }
        }).start();
    }
}
